package com.cyufeng.blog.service.mapper;

import com.cyufeng.blog.dto.AccountDto;
import com.cyufeng.blog.entity.Account;

import java.util.ArrayList;
import java.util.List;

/**
 * 用户登陆
 *
 * @author Cyufeng
 * Data:2018.12.30
 */
public class AccountMapper {
    AccountDto accountDto = new AccountDto();
    Account account = new Account();

    public AccountDto entityTodto(Account account) {
        accountDto.setId(account.getId());
        accountDto.setUsername(account.getUsername());
        accountDto.setPasswd(account.getPasswd());
        accountDto.setDr(account.getDr());

        //int类型转成boolean   0否 1是，是否启用
        if (account.getIsEnable() == 0)
            accountDto.setIsEnable(false);
        else
            accountDto.setIsEnable(true);

        //int类型转成boolean   0否 1是，是否管理员
        if (account.getIsAdmin() == 0)
            accountDto.setIsAdmin(false);
        else
            accountDto.setIsAdmin(true);
//        accountDto.setIsEnable(account.getIsEnable());
        return accountDto;
    }

    public Account dtoToentity(AccountDto accountDto) {
        account.setId(accountDto.getId());
        account.setUsername(accountDto.getUsername());
        account.setPasswd(accountDto.getPasswd());
        account.setDr(accountDto.getDr());
//        account.setIsEnable(accountDto.getIsEnable());
        //boolean类型转成int   0否 1是,是否启用
        if (accountDto.getIsEnable() == false)
            account.setIsEnable(0);
        else
            account.setIsEnable(1);

        //boolean类型转成int   0否 1是，是否管理员
        if (accountDto.getIsAdmin() == false)
            account.setIsAdmin(0);
        else
            account.setIsAdmin(1);
        return account;
    }

    //list集合
    public List<AccountDto> entityTodto(List<Account> accountList) {
        List<AccountDto> accountDtoList = new ArrayList<>();
        for (int i = 0; i < accountList.size(); i++) {
            Account account = accountList.get(i);
            AccountDto accountDto = new AccountDto();

            accountDto.setId(account.getId());
            accountDto.setUsername(account.getUsername());
            accountDto.setPasswd(account.getPasswd());
            accountDto.setDr(account.getDr());
            //int类型转成boolean   0否 1是
            if (account.getIsEnable() == 0)
                accountDto.setIsEnable(false);
            else
                accountDto.setIsEnable(true);

            //int类型转成boolean   0否 1是，是否管理员
            if (account.getIsAdmin() == 0)
                accountDto.setIsAdmin(false);
            else
                accountDto.setIsAdmin(true);

            accountDtoList.add(accountDto);
        }

        return accountDtoList;
    }

    public List<Account> dtoToentity(List<AccountDto> accountDtoList) {
        List<Account> accountList = new ArrayList<>();
        for (int i = 0; i < accountList.size(); i++) {
            Account account = new Account();
            AccountDto accountDto = accountDtoList.get(i);

            account.setId(accountDto.getId());
            account.setUsername(accountDto.getUsername());
            account.setPasswd(accountDto.getPasswd());
            account.setDr(accountDto.getDr());
//            account.setIsEnable(accountDto.getIsEnable());
            //boolean类型转成int   0否 1是
            if (accountDto.getIsEnable() == false)
                account.setIsEnable(0);
            else
                account.setIsEnable(1);

            //boolean类型转成int   0否 1是，是否管理员
            if (accountDto.getIsAdmin() == false)
                account.setIsAdmin(0);
            else
                account.setIsAdmin(1);

            accountList.add(account);
        }
        return accountList;
    }
}
